<?php
/*
 * @Descripttion: 用户自定义助手函数文件
 * @version:
 * @Author: ewgof
 * @Date: 2020-08-12 21:57:27
 * @LastEditors: ewgof
 * @LastEditTime: 2020-10-25 16:32:39
 */

// 定义 api token 有效期,单位 秒
const API_TOKEN_EXPIRE = 1800;
// 定义 admin token 有效期,单位 秒
const ADMIN_TOKEN_EXPIRE = 900;
// 定义用户上传图片的大小限制，默认 5 M
const USER_UPLOAD_SIZE = 5242880;
// 定义用户每次上传图片的数量，默认 20
const USER_UPLOAD_NUMBER = 20;
// 定义游客上传图片的大小限制，默认 2 M
const GUEST_UPLOAD_SIZE = 2097152;
// 定义游客每次上传图片的数量，默认 10
const GUEST_UPLOAD_NUMBER = 10;
// 定义上传图片的格式
const IMG_ALLOW_TYPE = ['png', 'jpg', 'jpeg', 'gif', 'bmp'];
// 定义每个用户默认的空间大小
const USER_SPACES = 5368709120;
// 定义游客默认的总空间大小
const ALL_GUEST_SPACES = 10737418240;


// 定义密码正则表达式
const PASSWORD_REG = '/^(?![0-9]+$)(?![a-zA-Z]+$)(?![_\!~@#\$%\^\&\*\+])[0-9A-Za-z_\!~@#\$%\^\&\*\+]{8,16}$/';



if (!function_exists('check_request')) {
    function check_request($rtime, $token)
    {
        if (!empty($token)) {
            if (empty($rtime) || time() - $rtime > 60) {
                return api_json_return(10002);
            }
            return check_token($token);
        }
        return true;
    }
}


if (!function_exists('check_token')) {
    function check_token($token)
    {
        global $db;
        $expire_user = $db->get('users', 'expire', ['token' => $token]);
        if (empty($expire_user)) {
            $expire_admin = $db->get('admins', 'expire', ['token' => $token]);
            if (empty($expire_admin)) {
                return api_json_return(10000);
            } else {
                if ($expire_admin <= time()) {
                    return api_json_return(10001);
                } else {
                    $db->update('admins', ['expire' => time() + ADMIN_TOKEN_EXPIRE], ['token' => $token]);
                }
            }
        } else {
            if ($expire_user <= time()) {
                return api_json_return(10001);
            } else {
                $db->update('users', ['expire' => time() + ADMIN_TOKEN_EXPIRE], ['token' => $token]);
            }
        }
        
        return true;
    }
}


if (!function_exists('make_token')) {
    /**
     * @name: make_token
     * @msg: 生成登录令牌
     * @param {type}
     * @return string
     */
    function make_token()
    {
        $token = md5(uniqid(microtime(true).mt_rand(1, 999999)));
        return $token;
    }
}


if (!function_exists('merge_cahe')) {
    /**
     * @name:
     * @msg: 合并缓存数据
     * @param {type}
     * @return {type}
     */
    // function merge_cache()
    // {
    //     global $clientid,$redis,$cache;

    //     $common_key = make_sha('common_cache_key');
    //     $user_client_id = $clientid;
    //     if ($clientid != $common_key) {
    //         // 登录用户
    //         $user_cache_data = \cw\facade\Cache::getAll();
    //         $clientid = $common_key;
    //         $common_cache_data = \cw\facade\Cache::getAll();
    //         $all_cache_data = array_merge($common_cache_data, $user_cache_data);
    //         // var_dump($all_cache_data);
    //         $clientid = $user_client_id;
    //         \cw\facade\Cache::preSetValues($all_cache_data);
    //         return cache('merge', true);
    //     }
    // }
}
